"""
nonlocal:
    允许嵌套函数中修改外层的函数中的局部变量
"""

# money = 1000
#
# def child_buy(money,commodity,price):
#     print(f'我现在手里有{money}')
#     money -= price
#     print(f'我买了{commodity}花了{price}元，还剩{money}')
#
#
# child_buy(money,'洋娃娃',200)
# child_buy(money,'裙子',700)


def get_money(money):
    print(f'我现在手里有{money}')
    def child_buy(commodity,price):
        # money 报错，因为内部函数可以访问并使用外部的变量，但是不能参与运算
        #money -= price

        nonlocal money
        print(f'内部函数的money:{money}')
        money -= price

        print(f'我买了{commodity}花了{price}元，还剩{money}')

    return child_buy


money  = 1000
child_buy = get_money(money)
child_buy('洋娃娃',200)
child_buy('裙子',700)





